package com.atwisdom.star.core.bsl.business;

// import com.alibaba.fastjson.JSONObject;
// import com.atwisdom.star.common.vo.ActionData;
// import com.atwisdom.star.common.vo.ResultInfo;
// import com.atwisdom.star.core.bsl.event.EventExecuteBody;
// import com.atwisdom.star.exception.pojo.BusinessException;
// import org.springframework.stereotype.Service;
// import org.springframework.transaction.annotation.Transactional;
//
// import java.util.List;
// import java.util.Map;

import org.springframework.stereotype.Service;

@Service
public class BusinessEventHandler {

//     //事件参数表
//     private EventExecuteBody param;
//     private EventExecuteBody state;
//     //返回数据结构
//     private String  back;
//     //服务操作
//     private String action;
//
//     @Transactional
//     public ResultInfo<?> responseFactory(List<ActionData<JSONObject>> actionDataList) throws BusinessException {
//         ActionData<JSONObject> actionData = actionDataList.get(0);
//         List<JSONObject> data = actionData.getData();
//         JSONObject jsonObject = data.get(0);
//         return this.workCenterProcessing(jsonObject);
//     }
//
//     public ResultInfo<?> workCenterProcessing(JSONObject jsonObject) {
//         this.initEventBody(jsonObject);
//         return this.dealEventAction();
//     }
//
//     /**
//      * 初始化事件体相关信息
//      *
//      * @param eventBody 事件体
//      */
//     private void initEventBody(JSONObject eventBody) {
//         //todo
// //        JSONObject reqParam = eventBody.getJSONObject("param");
// //        //1、请求参数表
// //        this.param = new EventVariable(reqParam);
// //        //2、配置参数表
// //        JSONObject stateMap = eventBody.getJSONObject("state");
// //        this.state = buildState(stateMap);
// //        //3、工作中心操作
// //        this.action = eventBody.getString("action");
// //        //4、获取事件返回结构
// //        this.back = eventBody.getString("back");
//     }
//
//     /**
//      * 构建服务参数表
//      * @param stateMap 服务参数表
//      * @return 返回结果
//      */
//     private EventExecuteBody buildState(Map<String, Object> stateMap) {
// //        Set<String> keys = stateMap.keySet();
// //        for (String k : keys) {
// //            if(stateMap.get(k) instanceof JSONObject || stateMap.get(k) instanceof LinkedHashMap || stateMap.get(k) instanceof JSONArray){
// //                continue;
// //            }
// //            String source = (String) stateMap.get(k);
// //            String target = EventUtil.removeFirstString(source,"<#");
// //            target = EventUtil.removeLastString(target,"#>");
// //            if (target.startsWith("param.")) {
// //                Object paramValue = param.getNodeValue(target);
// //                stateMap.put(k, paramValue);
// //            }
// //        }
// //        return new EventVariable(stateMap);
//         //todo
//         return null;
//     }
//
//     /**
//      * 处理服务事件操作
//      */
//     private ResultInfo<?> dealEventAction(){
//         //todo
// //        try{
// //            ActionData<JSONObject> actionData = new ActionData<>();
// //            JSONObject data = (JSONObject) this.state.getParams();
// //            data.put("back",this.back);
// //            actionData.setData(Collections.singletonList(data));
// //            WorkCenterActionType actionType = WorkCenterActionType.valueOf(this.action);
// //            String methodName = actionType.getMethodName();
// //           return null; // this.workCenterEventRuntimeService.execMethod(methodName, actionData);
// //        }catch (Exception ex){
// //            throw  new BusinessException("999999","工作中心事件执行失败",ex);
// //        }
//
//         return null;
//     }
}
